/*
 * FileName：ImgResourceCtrl.java 
 * <p>
 * Copyright (c) 2017-2020, <a href="http://www.webcsn.com">hermit (1154808491@qq.com)</a>.
 * <p>
 * Licensed under the GNU General Public License, Version 3 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.gnu.org/licenses/gpl-3.0.html
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package com.smart.primary.sys.ctrl;


import com.smart.primary.common.common.BaseCtrl;
import com.smart.primary.common.util.AjaxResult;
import com.smart.primary.common.util.ImgUtil;
import com.smart.primary.common.util.MediaTypeUtil;
import com.smart.primary.common.util.PropertiesUtil;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;

import java.io.File;
import java.util.Random;

/** 
 * @author : hermit
*/
@Controller
@RequestMapping("/upload")
public class ImgCtrl extends BaseCtrl {

	private Logger logger=LoggerFactory.getLogger(ImgCtrl.class);


	/**
	 * 上传图片(需要同步微信用)-抛弃
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/Img")
	public AjaxResult saveFile(MultipartFile file) throws Exception {
		//logger.info("上传图片-同步上传到微信");
		JSONObject obj = new JSONObject();
		if (null == file) {
			obj.put("message", "没有图片上传");
			logger.error("没有图片上传");
		}
		//原文件名称
		String trueName = file.getOriginalFilename();
		//文件后缀名
		String ext = FilenameUtils.getExtension(trueName);
		if (!MediaTypeUtil.isImg(ext)) {
			obj.put("message", "图片格式不正确");
			logger.error("图片格式不正确 :{}",ext);
		}

		if (file.getSize() > 1 * 1024 * 1024) {

			obj.put("message", "上传图片不能大于1M");
			logger.error("上传图片不能大于1M:{}",file.getSize());
		}

		//系统生成的文件名
		String fileName = System.currentTimeMillis() + new Random().nextInt(10000) + "." + ext;
		//图片上传路径
		String resURL = PropertiesUtil.getString("res.upload.url");
		String filePath = "upload/task/image/"+fileName;

		File saveFile = new File(resURL +filePath);


		if (!saveFile.exists()) {
			saveFile.mkdirs();
		}
		file.transferTo(saveFile);
		ImgUtil.yaSuoImg(resURL +filePath,resURL +filePath);
		return AjaxResult.success(filePath);
	}

//	/**
//	 * 上传图片(富文本)
//	 *
//	 * @return
//	 */
//	@ResponseBody
//	@RequestMapping("uploadFile")
//	public Map uploadFile(MultipartFile file) throws Exception {
//		//原文件名称
//		String trueName = file.getOriginalFilename();
//		logger.info("富文本图片上传：{}",trueName);
//		//文件后缀名
//		String ext = FilenameUtils.getExtension(trueName);
//
//		//系统生成的文件名
//		String fileName = System.currentTimeMillis() + new Random().nextInt(10000) + "." + ext;
//		//图片上传路径
//		String resURL = PropertiesUtil.getString("res.upload.url").toString();
//		String filePath = request.getSession().getServletContext().getRealPath("/");
//
//		//读取配置文上传件的路径
//		if (PropertiesUtil.getString("res.upload.path") != null) {
//			filePath = PropertiesUtil.getString("res.upload.path").toString() + fileName;
//		} else {
//			filePath = filePath + "/upload/" + fileName;
//		}
//
//		File saveFile = new File(filePath);
//
//		if (!saveFile.exists()) {
//			saveFile.mkdirs();
//		}
//		file.transferTo(saveFile);
//		//构造返回参数
//		Map<String, Object> map = new HashMap();
//		Map<String, Object> mapData = new HashMap();
//		map.put("code", 0);//0表示成功，1失败
//		map.put("msg", "上传成功");//提示消息
//		map.put("data", mapData);//提示消息
//		mapData.put("src", resURL + fileName);//图片url
//		mapData.put("title", fileName);//图片名称，这个会显示在输入框里
//		return map;
//	}
//
//	/**
//	 * 上传图片(普通上传)
//	 *
//	 * @return
//	 */
//	@ResponseBody
//	@RequestMapping("uploadFileImg")
//	public AjaxResult uploadFileImg(MultipartFile file) throws Exception {
//		//原文件名称
//		String trueName = file.getOriginalFilename();
//		logger.info("上传图片(普通上传)：{}",trueName);
//		//文件后缀名
//		String ext = FilenameUtils.getExtension(trueName);
//
//		//系统生成的文件名
//		String fileName = System.currentTimeMillis() + new Random().nextInt(10000) + "." + ext;
//		//图片上传路径
//		String resURL = PropertiesUtil.getString("res.upload.url").toString();
//		String filePath = request.getSession().getServletContext().getRealPath("/");
//
//		//读取配置文上传件的路径
//		if (PropertiesUtil.getString("res.upload.path") != null) {
//			filePath = PropertiesUtil.getString("res.upload.path").toString() + fileName;
//		} else {
//			filePath = filePath + "/upload/" + fileName;
//		}
//
//		File saveFile = new File(filePath);
//
//		if (!saveFile.exists()) {
//			saveFile.mkdirs();
//		}
//		file.transferTo(saveFile);
//		return AjaxResult.success(resURL + fileName);
//	}
//	/**
//	 *  删除图片
//	 * @param id
//	 * @return
//	 * @throws Exception
//	 */
//	@ResponseBody
//	@RequestMapping("delMediaImg")
//	public AjaxResult delMediaImg(String id)throws Exception {
//		logger.info("删除图片 id：{}",id);
//		ImgResource img = imgResourceService.getImg(id);
//        WxApiClient.deleteMaterial(img.getMediaId(), WxMemoryCacheClient.getMpAccount());
//		imgResourceService.delImg(id);
//		return AjaxResult.deleteSuccess();
//	}


}
